1. Field of the Invention
The present invention generally relates to coupling components in composite applications. Specifically, the present invention relates to a system and method for allowing: the creation of composite applications utilizing a “drag-and-drop” process on the user's user interface (UI); the wiring of loosely coupled components; the reuse of existing components with little or no change; and the connection of disparate technologies.
2. Related Art
Composite applications in IBM® WPLC® (Workplace, Portal and Collaboration Software) software are the collections of multiple components and component types brought together for a business purpose. The composite applications allow integration of different technologies on the glass so that end users have all of the tools and functions in one application and on one screen which they need to get their jobs done. Composite applications also allow the easy reuse of coarse grained components by using loosely coupled components which talk between each other via a property broker and WSDL. “WSDL” is short for Web Services Description Language, an XML-formatted language used to describe a Web service's capabilities as collections of communication endpoints capable of exchanging messages. WSDL is an integral part of UDDI, an XML-based worldwide business registry. (Universal Description, Discovery and Integration (UDDI) is a platform-independent, XML-based registry for businesses worldwide to list themselves on the Internet.) WSDL is the language that UDDI uses. WSDL was developed jointly by Microsoft and IBM. Composite applications are part of IBM Portal® 6.0, Expeditor 6.1 and will be part of Lotus® Notes® 8.0. More information on IBM's products may be found at www.ibm.com.
“Components” are an approach to organizing and presenting the functionality of a dynamic application by using visually distinct UI pages or sections (blocks) of a user interface. In addition to defining the user interface, a component includes associated business logic and application flow logic.
A Component can be designed as one of the following component types:
Course-Grained Component                represents the complete user interface appearing in a web browser        
Fine-Grained Component                an elementary unit of dynamic content        represents a distinct part of the user interface appearing in a web browser        visually and functionally distinct from other fine-grained components        are typically a rectangular content area on the user interface        promotes maximum reusability because web process components can be reused in many user interfaces        easily identifiable structure element of a user interface (i.e. menu bar, registration)        can be easily used in WSRP compatible portals or assembled with an assembly component        
Assembly Component                represents a component that aggregates other components        at runtime the complete user interface is assembled with two or more other fine-grained components        the assembly component defines the structure and layout of the user interface        provides a layout framework similar to a portal        
Since course-grained components can be very quickly created, they are best suited for one-off UI services that are not expected to be used for very long. As more functionality is added to a service, the course-grained components become more difficult to maintain and re-use.
Fine-grained components are the best approach to implementing UI services. The components can be easily assembled into an application using an assembly component or portal. The UI flow can be easily modified to add or remove components for a UI state.
To promote the re-use of a component, components are designed as loosely coupled as possible. This is accomplished by only including logic (steps) that is directly related to the component's function. Changes to the component should not impact (or at least have minimal impact) to the consumers of the component.
Coupling generally refers to the act of joining two things together, such as the links in a chain. But in software development, coupling typically refers to the degree to which software components/modules depend upon each other. The degree to which components are linked defines whether they operate in a tightly coupled relationship or in a loosely coupled relationship. With tightly coupled components, each component and any auxiliary dependent objects must be present at execution time as well as compile time. On the other hand, loosely coupled components can operate independently from one another.
Lotus Notes customers are always trying to avoid template changes in the templates which come out of the box with Lotus Notes. The term “template”, when used in the context of file format, refers to a common feature of many software applications which defines a unique file format intended specifically for a particular application. Template file formats are those whose file extension indicates that the file type is intended as a starting point from which to create other files. For Lotus Notes, the file extension is “.ntf”—“Notes Template Format”. Examples of Notes templates which are very highly likely to be used by users are the mail template (mail8.ntf) (for creating email files) and the contacts template (pernames.ntf) (for creating address book entries).
The reason for that Lotus Notes customers try to avoid template changes is that no sufficient “sandbox” model for templates presently exists. (A “sandbox” is a testing (or virtual) environment that isolates untested code changes and outright experimentation from the production environment or repository, in the context of software development including web development and revision control, and by extension in web-based editing environments including wikis. A template sandbox would also have a repository of templates which have been tested and debugged—such as the template which the user wished to be used.) Because there is no repository of templates which have been tested and debugged, the customer is forced to make changes to the templates himself and, because the customer may not be familiar with the particular template, may make errors. For instance, whenever a customer changes the templates himself, there is a great chance that he will overwrite his changes without his knowledge. For instance, if the user updates his application or databases, his modified template may be overwritten. It is only after he has updated his databases to the new versions of the out of the box templates that he notices the errors and then has to redo his changes again.
Some companies like SAP AG and Microsoft Corporation have also some form of composite applications, but none of them really support loosely coupled components. (SAP AG is the largest European software enterprise and the third largest in the world, with headquarters in Walldorf, Germany. Microsoft Corporation is an American multinational computer technology corporation with 79,000 employees in 102 countries. There are no other technologies which allow integrations of loosely coupled components on the glass.
Therefore, there exists a need for a solution that solves at least one of the deficiencies of the related art.